home *** CD-ROM | disk | FTP | other *** search
- ! -----------------
- ! C-128 ROM-I/O`MAP
- ! -----------------
- !
- ! By James Hermann
- ! 74576.711
- !
- !With Help From-
- ! Allen Yoder/SCOPE-Texas
- ! Dave Haynie/Commodore
- ! 76703.2047
- !
- !0000* 8502 On-Chip D-D Register
- !0001* 8502 On-Chip I/O Register
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !4000-7FFF BASIC Low ROM or
- ! Internal Low ROM or
- ! External Low ROM.
- ! 4000- BASIC Power-up JMP $4023
- ! 4003- BASIC RESET JMP $4009
- ! 4023-4044 BASIC Power-up
- ! 4045-410F Init. BASIC registers
- ! 4112-4179 Init. BASIC Abs. Var.
- ! 417A-418C Initalize D501-4
- ! 419B-41BA Print RESET Screen
- ! 41BB-4250 RESET Screen Header Char.
- ! 4251-4278 Init. 0300-11;02FC
- ! 4279-43DD BASIC CHRGET ML
- ! 430D- Tokenize BASIC Text
- ! 4417-4515 BASIC 2.0 Keywords
- ! 4516-46F8 BASIC 7.0 Keywords
- ! 484B-4A81 BASIC Error Meassages
- ! 4AA2- BASIC Char. Dispatch
- ! 4D3F- Print BASIC Message
- ! 4DC6- BASIC Warm Start
- ! 5151- BASIC Text LIST
- ! 51D9-5261 Init. BASIC Pgm vectors
- ! 6EB2-6EDA Init. BASIC Abs. Var.
- ! 78DA- BASIC Token Eval.
- ! 7E82-7FFD Blank
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !8000-BFFF BASIC Mid ROM or
- ! Internal ROM or
- ! External ROM.
- ! 9251-9298 BASIC to KERNAL JMP Table
- ! A845-A84C To BANK(15)
- ! AA6E-AE62 Blank
- ! AFA8-AFFF Blank
- ! B000-BFFF Moniter ROM
- ! BOOO- Moniter RST code
- ! B003- BRK
- ! BB72-BFFD Blank
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !C000-CFFF Editor High ROM or
- ! Internal ROM or
- ! External ROM.
- ! C000- CINT -JMP $C07B
- ! C00F- SCREEN
- ! C012- SCNKEY
- ! C018- PLOT
- ! C07B- CINT
- ! CEA8-CEF4 Function Key Init. values
- ! CEF5-CFFD Blank
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !D000-DFFF I/O Space
- ! D500-D50B MMU I/O chip(switchable)
- ! D500 MMU Config. Reg. ($FF00)
- ! D501-D504 MMU Preconfig. Registers
- ! D505 bit 7 - 40/80 switch 1=40
- ! bit 6 - 128/64 mode 1=64
- ! bit 5 - GAME line; bi-dir
- ! bit 4 - EXROM line; bi-d
- ! bit 3 - Fast Serial I/O
- ! bit 1-2 - reserved
- ! bit 0 -8502/Z80 CPU 0=Z80
- ! D506 RAM Config. Register
- ! bits 0-1 -K of Common RAM
- ! 00-1K 01-4K
- ! 10-8K 11-16K
- ! bits 2-3 -Loc./Common RAM
- ! 00-none 01-Bottom
- ! 10-Top 11-Both
- ! bits 4-5 -reserved
- ! bit 6 -RAM # used by VIC
- ! bit 7 -reserved
- ! D507 Page for CPU Zero Page
- ! D508 LSB-RAM # for CPU ZP
- ! D509 Page for CPU stack
- ! D50A LSB-RAM # for CPU stack
- ! D50B System Version Register
- ! bits 0-3 -MMU chip vers.
- ! bits 4-7 -Code for K/RAM
- ! 0010- 128K
- ! 0000- 256K
- ! D50C-D5FF Blank
- ! D600-D601 Access to 16K display RAM
- ! D600 Register addresses
- ! D601 Data
- ! DC00-DCFF CIA #1 (Keyboard; etc.)
- ! DD00-DDFF CIA #2 (Serial; etc.)
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !E000-FFFF KERNAL High ROM
- ! E000- KERNAL ROM Code
- ! E000-E048 RST Code
- ! E04B-E055 $D500 Init. values
- ! E056- RESTORE
- ! E05B- VECTOR
- ! E093- RAMTAS
- ! E0CD-E108 Init.$FF05- on RAM(0-3) &
- ! KERNAL RAM Code on RAM(0)
- ! E109-E1EF IOINIT routine
- ! E1F0-E223 If $FFF5-9 on RAM(1)=cbm,
- ! then JMP ($FFF8);else...
- ! E224-E241 Init. $FFF5-9 on RAM(1)
- ! E242-E2BF Switch to 64 mode if D505
- ! bits 4-5 not set; check
- ! Int./Ext. ROM and JMP
- ! E24B-E26A Switch to 64 mode
- ! E33B- TALK
- ! E33E- LISTEN
- ! E43E- ACPTR
- ! E4D2- SECOND
- ! E4E0- TKSA
- ! E503- CIOUT
- ! E515- UNTLK
- ! E526- UNLSN
- ! F23D-F264 Close all files on dev=ac
- ! F265- LOAD
- ! F53E- SAVE
- ! F5F8- UDTIM
- ! F63D-F65D Check for CTRL R/S or C=
- ! F65E- RDTIM
- ! F665- SETTIM
- ! F6B1-F71D KERNAL Messages
- ! F731- SETNAM
- ! F738- SETLFS
- ! F744- READST
- ! F75C- SETMSG
- ! F75F- SETTMO
- ! F763- MEMTOP
- ! F772- MEMBOT
- ! F781- IOBASE
- ! F7D0-F7D9 Call KERNAL RAM Code 02A2
- ! to LDA byte from addr;y
- ! at Zero-Page vector in
- ! acc for BANK(x)
- ! F7EC-F7EF LDA MMU value for BANK(x)
- ! F7F0-F7FF MMU values for BANK(0-15)
- ! F800-F859 KERNAL RAM Code $02A2-FB
- ! F85A-F866 KERNAL RAM Code $03F0-FC
- ! F867-F988 Check for ROM not used
- on RST ; Load Boot Page
- and execute
- ! F9D5-F9FA Load page and STA($ACC)
- ! FA00- Editor Tables
- ! FA17-FA3F Print bytes after JSR
- ! FA40- NMI
- ! FA65- IRQ
- ! FC3B-FC7F Blank
- ! FC80-FEFF Foreign Lang. Sys.-Blank
- !FF00* MMU Config. Register
- !FF01-FF04* MMU Load Config. Regs.
- ! FF05-FF44 KERNAL Int. Dispatch Code
- ! FF3D-FF44 RST Code JMP $E000
- ! FF47-FF80 KERNAL Hardware JMP Table
- ! FF81-FFF5 KERNAL User Jump Table
- ! FFFA-FFFF NMI;RST; and IRQ vectors
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !* These are I/O registers and take the
- ! place of RAM or ROM always.
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !MMU Configuration Register $D500/FF00
- ! bits values purpose
- ! 6-7 RAM control-
- ! 00 RAM(0)
- ! 01 RAM(1)
- ! 10 RAM(2)-not present
- ! 11 RAM(3)-not present
- ! 4-5 ROM control-
- ! 00 KERNAL and EDIT ROM
- ! 01 Internal High ROM
- ! 10 External High ROM
- ! 11 None
- ! 2-3 Mid ROM control- $8000-BFFF
- ! 00 BASIC ROM
- ! 01 Internal ROM
- ! 10 External ROM
- ! 11 None
- ! 1 Low ROM Control- $4000-7FFF
- ! 0=ROM 1=RAM
- ! 0 I/O-ROM Control- $D000-DFFF
- ! 0=I/O 1=CHAR`ROM
-